<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>

<script>

    // 数据请求都是异步的
    // 异步的数据都会通过回调函数获取

    // function havshda(res){
    //     // 希望res内保存了后端数据
    //     // res是当前函数的形参
    //     // 形参用来接收
    //     // 实参用来发送
    //     // 函数执行时传入的是实参
    //     // 函数执行时传入的是后端数据
    //     // 后端可以拿到后端数据
    //     // 将函数的执行语句写在后端
    //     console.log(res);
    // }

    // jsonp需要一个script标签
    // 设置src属性：url
    // url后拼接数据
    // 定义全局函数
    // 需要将函数名作为数据拼接到url

    function jsonp(url, data, cb){
        let str = "";
        for(let i in data){
            str += `${i}=${data[i]}&`
        }
        const script = document.createElement("script");
        script.src = url + "?" + str.slice(0,-1);
        document.body.appendChild(script);
        // 如何在局部作用域内声明全局函数
        window[data[data.cbNameFieldName]] = function(res){
            cb(res);
        }
    }

    jsonp("http://127.0.0.1:3000/getJsonp", {
        username:"admin",
        cb:"shdgvidhbrdsgdxf",
        cbNameFieldName: "cb"
    }, res=>{
        console.log(res, "ok")
    })


</script>
<!-- <script src="http://127.0.0.1:3000/getJsonp?cbName=havshda&asd=ahvd&asd=asdasd"></script> -->
</html>